From: Juergen Gross Date: Wed, 23 Aug 2017 17:34:00 +0000 (+0200) Subject: xen/arch/x86/shutdown.c: let custom parameter parsing routines return errno X-Git-Tag: archive/raspbian/4.11.1-1+rpi1~1^2~66^2~1586 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=512ec530fb83e00e2741e99269fb9724da2db400;p=xen.git xen/arch/x86/shutdown.c: let custom parameter parsing routines return errno Modify the custom parameter parsing routines in: xen/arch/x86/shutdown.c to indicate whether the parameter value was parsed successfully. Signed-off-by: Juergen Gross Reviewed-by: Jan Beulich --- diff --git a/xen/arch/x86/shutdown.c b/xen/arch/x86/shutdown.c index f63b8a668f..a87aa60add 100644 --- a/xen/arch/x86/shutdown.c +++ b/xen/arch/x86/shutdown.c @@ -51,8 +51,11 @@ static int reboot_mode; * efi Use the EFI reboot (if running under EFI) */ static enum reboot_type reboot_type = BOOT_INVALID; -static void __init set_reboot_type(char *str) + +static int __init set_reboot_type(const char *str) { + int rc = 0; + for ( ; ; ) { switch ( *str ) @@ -74,6 +77,9 @@ static void __init set_reboot_type(char *str) case 't': reboot_type = *str; break; + default: + rc = -EINVAL; + break; } if ( (str = strchr(str, ',')) == NULL ) break; @@ -81,7 +87,13 @@ static void __init set_reboot_type(char *str) } if ( reboot_type == BOOT_EFI && !efi_enabled(EFI_RS) ) + { + printk("EFI reboot selected, but no EFI runtime services available.\n" + "Falling back to default reboot type.\n"); reboot_type = BOOT_INVALID; + } + + return rc; } custom_param("reboot", set_reboot_type);